#ifndef BELLMAN_FORD_H
#define BELLMAN_FORD_H

#include "Weighted_Directed_Graph.hpp"

class Bellman_Ford
{
private:
    void Initialize_Single_Source(Weight_Directed_Graph *G, int s);
    void Relax(vertex* u, vertex* v, vector<vector<int>>* w);

public:
    bool run_Bellman_Ford(Weight_Directed_Graph *G, int s, vector<vector<int>>* w);
    void output_result(Weight_Directed_Graph *G, int s);
};


#endif